namespace oker
{
	template<class T>
	class unique_ptr
	{
		unique_ptr(const T* ptr)
			:_ptr(ptr)
		{
		}
		unique_ptr(unique_ptr<T>& up) = delete;
		unique_ptr<T>& operator=(unique_ptr<T>& up) = delete;
		T& operator*()const
		{
			return *_ptr;
		}
		T* operator->()const
		{
			return _ptr;
		}

		~unique_ptr()
		{
			if (_ptr)
				delete _ptr;
		}

	private:

		T* _ptr;

	};
}